В данной статье я рассмотрю пример, когда необходимо массово увеличить цену у всех продуктов на сайте.
Когда может быть полезно?
Например, произошло повышение цен, а товаров на сайте очень много. Вручную править цены довольно долго и неудобно.
Все что вам нужно сделать, это добавить следующий код в functions.php
вашей темы:
Для простых, группированных и внешних товаров
add_filter('woocommerce_product_get_price', 'custom_price', 99, 2 );
add_filter('woocommerce_product_get_regular_price', 'custom_price', 99, 2 );
function custom_price( $price, $product ) {
//очищаем временный кэш товара (при необходимости)
wc_delete_product_transients($product->get_id());
return $price + $price * 0.1; // X3 for testing
}
Для вариантивных товаров
add_filter('woocommerce_product_variation_get_regular_price', 'custom_price', 99, 2 );
add_filter('woocommerce_product_variation_get_price', 'custom_price', 99, 2 );
function custom_price( $price, $product ) {
//очищаем временный кэш товара (при необходимости)
wc_delete_product_transients($product->get_id());
return $price + $price * 0.1; // X3 for testing
}
Для самих вариаций:
add_filter('woocommerce_variation_prices_price', 'custom_variation_price', 99, 3 );
add_filter('woocommerce_variation_prices_regular_price', 'custom_variation_price', 99, 3 );
function custom_variation_price( $price, $variation, $product ) {
//очищаем временный кэш товара (при необходимости)
wc_delete_product_transients($variation->get_id());
return $price + $price * 0.1; // X3 for testing
}
В данном случае я увеличила стоимость каждого товара на 10%. Также можно увеличить цену в несколько раз, или уменьшить стоимость на % или тоже в несколько раз.